In recent years, for attainment of higher interactivity, AV (audio visual) devices have begun to adopt a platform in which a versatile program language can be executed. A typical example thereof is the MHP (Multimedia Home Platform) adopting Java® language. See Japanese Unexamined Patent Publication Tokukai 2001-103383 (published on Apr. 13, 2001; hereinafter, referred to as “Patent document 1”), for example.
Described in Patent document 1 is a television display apparatus that is so made as to have (i) various control functions, and (ii) an interface which is simple for a user. Specifically, the television display apparatus includes: (i) a memory for storing a plurality of control images, and for continuously storing major files; (ii) an event selector for correlating an event with selected one of the control images; (iii) an action selector for correlating an action with the selected control image; (iv) a display section for detecting the event and for displaying, in accordance with the detected event, the selected control image during a predetermined period such that the selected control image is overlaid with a currently viewed television service; (v) a command section for starting the action in response to a control command supplied by an input apparatus during the predetermined period. The command section causes display of a content of a major file corresponding to each major image displayed in response to the major command supplied by the input apparatus during the predetermined period. The content of the major file is so displayed as to be overlaid with the currently viewed television service.
The present invention and Patent document 1 are similar in that a computer program language such as Java® is used for the control of the video reproduction. However, Patent document 1 targets for broadcasting, whereas the present invention targets for a disk and the like. Moreover, Patent document 1 does not disclose the following major features (1) through (3) of the present invention:
(1) an apparatus structure and a data structure, each of which makes it possible to control, at a video frame precision, start and end of a process to be done by the program;
(2) an apparatus structure and a data structure, each of which allows for time specifying (designation) reproduction and a resuming process; and
(3) an apparatus structure and a data structure, each of which makes it possible to avoid overhead occurring due to execution of the program.
FIG. 35 is a function block diagram schematically illustrating a structure of a conventional AV device having the versatile program language executing platform. In cases where such a versatile program language executing platform is adopted in the AV device as shown in FIG. 35, the AV device is made up of a program executing section 101, a video reproducing section 102 for decoding video data, and a combining section 103. The combining section 103 overlays respective outputs of the program executing section 101 and the video reproducing section 102 with each other. Generally, in view of cost and realtimeness, the video reproducing section 102 is hardware installed in the AV device.
However, it is difficult for such a conventional AV device to start displaying, from a specific video frame in time-sequential video reproduction, a graphics and an animation each generated by using the program, and to end the displaying at a specific video frame therein. This is because a program using an advanced computer language (high-level language) operates slowly in general. Especially, a program using Java® language is executed on a virtual machine. Moreover, a garbage collection process is carried out so as to free a used memory. This makes it difficult to secure real-time processing. Further, for synchronization of the graphics with the video at each frame, polling needs to be carried out at time shorter than the frame rate. Accordingly, the overhead due to the program becomes large. Further, software is required to check a clock value, for the sake of starting the display of the graphics from a specific timing and ending the display at a specific timing in the video reproduction. Accordingly, the overhead becomes large in the processing. This makes it difficult that each timing at which the display of the graphics is started and ended corresponds to the specific timing at each frame in the video reproduction. This is inefficient in terms of the processing.
Further, when starting the reproduction from an arbitrary time point of the video, it is difficult for the conventional AV device to display the graphics on a target time point such that the graphics are accurately overlaid with the video. A reason of this is as follows. That is, each of timings of appearance (display) and disappearance (non-display) of the graphics is controlled in accordance with a value found by polling the clock during the video reproduction. Therefore, when starting the reproduction from the target time point, a clock change having occurred in starting the reproduction needs to be produced again. In other words, the display of the graphics at the target time point requires time corresponding to a period of time from the beginning of the video to the target reproduction start time.
Further, the program executing section 101 controls the video reproducing section 102 of the conventional AV device in accordance with a specified program. Accordingly, the following problems (1) and (2) arise: (1) it takes longer time to start the video reproduction as compared with the time taken to reproduce conventional DVD Video with no use of Java® language; (2) a response to a user manipulation (such as “Jump to the next chapter”) is slow. The problem (1) occurs as follows. That is, the program has a description for controlling the start of reproducing the video data. Therefore, until the program is launched and executed up to the description for controlling the start of reproducing the video data, no instruction for controlling the start of reproducing the video data is sent to the video reproducing section 102. In other words, the problem (1) occurs due to the overhead caused by the program executing section 101. On the other hand, the problem (2) occurs due to such an overhead that: the program executing section 101 receives the user manipulation, and then the program converts the user manipulation into a reproduction control instruction to be supplied to the video reproducing section 102, and then the reproduction is carried out. Further, in cases where the aforementioned garbage collection process is carried out during the reproduction start process and the user manipulation interpreting process, the response to the user manipulation is possibly further delayed.
Further, the conventional AV device does not allow for the “resuming” process currently realized in the DVD. The wording “resuming (resume)” refers to a function for resuming reproduction of a content from a point at which previous reproduction thereof was suspended due to menu readout carried out by the user. The reproduction of the content is resumed when the user carries out manipulation of returning from the menu to the previous reproduction condition.
Further, the conventional AV device does not take into consideration that contents respectively provided by a plurality of content providers are stored in the same recording medium. Consider an example in which providers A and B provide contents in one optical disk. In this case, video data of the provider B needs to be prevented from being intentionally reproduced without approval (authorization) by a program of the provider A, or from being reproduced without approval by a bug of the program thereof. However, the conventional AV device does not provide a structure for dealing with such a case.
The present invention is made in light of the problems, and its first object is to provide (i) a reproducing apparatus which can effectively execute a program in synchronism with reproduction of AV data or the like; (ii) a method for controlling the reproduction apparatus; (iii) a content recording medium; (iv) a data structure; (v) a control program; and (vi) a computer-readable recording medium storing the control program. Its second object is to provide a reproducing apparatus, a method for controlling the reproducing apparatus, a content recording medium, a data structure, a control program, and a computer-readable recording medium storing the control program, whereby unauthorized reproduction (playback) can be prevented.